# 发起请求获取页面源代码
# 对页面进行解析（影片的名字、上映的时间、评分、评价数量）
# 将解析后的内容进行保存在本地文件中
import requests
import re
import csv
url="https://movie.douban.com/top250"
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
}
proxies={
    "HTTP":"http://2183.36.36.147:3128/",
    "HTTPS":"https://183.36.36.147:3128/"
}
# User-Agent表示 身份标识，正常用户在点击网站时，会携带该属性，该属性中会包含请求的来源（系统、浏览器等信息）
# 不携带的情况下，User-Agent默认为python，有些网站的服务器会拦截这些请求
resp=requests.get(url,headers=headers,proxies=proxies)
movie_content=resp.text
# print(movie_content)
obj=re.compile(r'<li>.*?<span class="title">(?P<movie_name>.*?)</span>'
               r'.*?<p class="">.*?<br>(?P<movie_year>.*?)&nbsp;.*?'
               r'<span class="rating_num" property="v:average">(?P<rating_num>.*?)</span>.*?'
               r'<span>(?P<comm_num>.*?)人评价</span>',re.S)
movie_msg_final=obj.finditer(movie_content)
# 将处理好的数据进行保存在csv文件中
f=open("豆瓣影片信息.csv","w")
# 将文件传递给csv
writer=csv.writer(f)
for item in movie_msg_final:
    # print(item.group("movie_name"))
    # print(item.group("movie_year").strip())
    # print(item.group("rating_num"))
    # print(item.group("comm_num"))
    # 将最终处理好的数据转换为字典类型的格式
    dict1=item.groupdict()
    # 去掉年份前面的多余空格
    dict1["movie_year"]=dict1["movie_year"].strip()
    # 将数据写入文件中
    writer.writerow(dict1.values())
    pass
f.close()
resp.close()